package com.timous.others;

/**
 * https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/
 */
public class _121_买卖股票的最佳时机 {
    /**
     * 动态规划
     * 第i天买第j天卖 ， 能获取的最大利润就是相邻两天的值的和  问题转化就是
     * 最大连续子序列和
     * @param prices
     * @return
     */
    public int maxProfit(int[] prices) {
        int max = 0;
        //  前一天买 ， 后一天卖的利润
        int[] arr = new int[prices.length - 1];
        //求出相邻两天的买卖的差值
        for (int i = 0; i < arr.length; i++) {
            arr[i] = prices[i+1] - prices[i];
        }
        return max;
    }

    /**
     * 普通的方式
     * @param prices
     * @return
     */
    public int maxProfit1(int[] prices) {
        if (prices == null) return 0;
        int max = 0;
        int min = prices[0];
        int[] profit = new int[prices.length];
        for (int i = 0; i < prices.length; i++) {
            if (min > prices[i]){
                min = prices[i];
            }
            max = Math.max(max , prices[i] - min);
        }
        return max;
    }
}
